﻿Imports ConexionBD
Imports System.Data.Common

Public Class ProductoBodega

    Public codBdProd, codBodega, codProducto As String
    Public existencia As Decimal

    Public Shared Function exisProdBga(ByRef prodBga As ProductoBodega) As Boolean
        Dim conexion As New ConexionBD.ConexionBD()
        Dim dtConsulta As New DataTable
        If conexion.Conectar() Then
            Dim sentencia As String
            sentencia = "select * from PRODUCTO_BODEGA where COD_PRODUCTO=@COD_PRODUCTO AND COD_BODEGA=@COD_BODEGA"
            conexion.ParametroEntrada = New List(Of DbParameter)
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, _
                                                                              prodBga.codProducto, "COD_PRODUCTO"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, _
                                                                             prodBga.codBodega, "COD_BODEGA"))
            dtConsulta = conexion.Consulta(sentencia)
            conexion.Desconectar()
        End If

        If dtConsulta.Rows.Count <= 0 Then
            Return False
        Else
            Return True
        End If

    End Function

    Public Shared Function Nuevo(ByRef prodBga As ProductoBodega) As Resultado '''' Este metodo aun no sirve 
        Dim conexion As New ConexionBD.ConexionBD()
        Dim oResultado As New Resultado
        oResultado.ExisteError = conexion.Conectar()
        If oResultado.ExisteError Then
            Dim sentencia As String
            sentencia = "INSERT INTO PRODUCTO_BODEGA(COD_BD_PROD,COD_BODEGA,COD_PRODUCTO,EXISTENCIA) VALUES (@COD_BD_PROD,@COD_BODEGA,@COD_PRODUCTO,@EXISTENCIA)"

            conexion.ParametroEntrada = New List(Of DbParameter)
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, prodBga.codBdProd, "COD_BD_PROD"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, prodBga.codBodega, "COD_BODEGA"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, prodBga.codProducto, "COD_PRODUCTO"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInDecimal(conexion, prodBga.existencia, "EXISTENCIA"))
            oResultado.ExisteError = conexion.EjecutarSql(sentencia)
            oResultado.FilasAfectadas = conexion.NumFilasAfectadas
            oResultado.Mensaje = conexion.mensaje
            conexion.Desconectar()
        End If
        Return oResultado
    End Function

    Public Shared Function Actualizar(ByRef prodBga As ProductoBodega) As Resultado
        Dim conexion As New ConexionBD.ConexionBD()
        Dim oResultado As New Resultado
        oResultado.ExisteError = conexion.Conectar()
        If oResultado.ExisteError Then
            Dim sentencia As String
            sentencia = "UPDATE PRODUCTO_BODEGA SET EXISTENCIA=@EXISTENCIA WHERE COD_BODEGA=@COD_BODEGA AND COD_PRODUCTO=@COD_PRODUCTO"
            conexion.ParametroEntrada = New List(Of DbParameter)
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, prodBga.codBodega, "COD_BODEGA"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, prodBga.codProducto, "COD_PRODUCTO"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInDecimal(conexion, prodBga.existencia, "EXISTENCIA"))
            oResultado.ExisteError = conexion.EjecutarSql(sentencia)
            oResultado.FilasAfectadas = conexion.NumFilasAfectadas
            oResultado.Mensaje = conexion.mensaje
            conexion.Desconectar()
        End If
        Return oResultado
    End Function

    Public Shared Function ConsxCodProd(producto As ProductoBodega) As DataTable
        Dim conexion As New ConexionBD.ConexionBD()
        Dim dtConsulta As New DataTable
        If conexion.Conectar() Then
            Dim sentencia As String
            sentencia = "select * from PRODUCTO_BODEGA where COD_PRODUCTO=@COD_PRODUCTO"
            conexion.ParametroEntrada = New List(Of DbParameter)
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, _
                                                                              producto.codProducto, "COD_PRODUCTO"))
            dtConsulta = conexion.Consulta(sentencia)
            conexion.Desconectar()
        End If
        Return dtConsulta
    End Function

    Public Shared Function consxCodProdBga(ByRef prodBga As ProductoBodega)
        Dim conexion As New ConexionBD.ConexionBD()
        Dim dtConsulta As New DataTable
        If conexion.Conectar() Then
            Dim sentencia As String
            sentencia = "select * from PRODUCTO_BODEGA where COD_PRODUCTO=@COD_PRODUCTO AND COD_BODEGA=@COD_BODEGA"
            conexion.ParametroEntrada = New List(Of DbParameter)
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, _
                                                                              prodBga.codProducto, "COD_PRODUCTO"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, _
                                                                             prodBga.codBodega, "COD_BODEGA"))
            dtConsulta = conexion.Consulta(sentencia)
            conexion.Desconectar()
        End If
        Return dtConsulta
    End Function

    Public Shared Function ConsxCodProd(codigoProducto As String) As DataTable
        Dim conexion As New ConexionBD.ConexionBD()
        Dim dtConsulta As New DataTable
        If conexion.Conectar() Then
            Dim sentencia As String
            sentencia = "select * from PRODUCTO_BODEGA where COD_PRODUCTO=@COD_PRODUCTO"
            conexion.ParametroEntrada = New List(Of DbParameter)
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, codigoProducto, "COD_PRODUCTO"))
            dtConsulta = conexion.Consulta(sentencia)
            conexion.Desconectar()
        End If
        Return dtConsulta
    End Function

    Public Shared Function ConsExistencia(codigoProducto As String, codigoBodega As String) As DataTable
        Dim conexion As New ConexionBD.ConexionBD()
        Dim dtConsulta As New DataTable
        If conexion.Conectar() Then
            Dim sentencia As String
            sentencia = "select EXISTENCIA from PRODUCTO_BODEGA where COD_PRODUCTO=@COD_PRODUCTO AND COD_BODEGA =@COD_BODEGA"
            conexion.ParametroEntrada = New List(Of DbParameter)
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, codigoProducto, "COD_PRODUCTO"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, codigoBodega, "COD_BODEGA"))
            dtConsulta = conexion.Consulta(sentencia)
            conexion.Desconectar()
        End If
        Return dtConsulta
    End Function
End Class
